It has become common for enterprises to deploy management servers. Management servers may be used to transmit commands to managed resources (e.g., processing resources and storage resources) at the enterprise. A management server can receive commands from a client application, thereby enabling the client application to manage resources via the management server. A management server is typically categorized based on the management protocol supported by the management server. Modern enterprises often have multiple management servers (e.g., one or more management servers for each management protocol supported within the enterprise). However, developing client applications that can communicate with multiple management servers using multiple management protocols may be a tedious and error-prone task. Furthermore, updating the client application may result in duplication of effort, because the update may involve making similar changes to multiple software modules of the client application (e.g., a software module for each management protocol).